package main

import "fmt"

// 函数结束之后自动执行
func goDefer() {
	//defer是压在栈中的，越后声明越先执行
	defer fmt.Println("world")
	defer fmt.Println("end2")
	defer fmt.Println("end1")
	fmt.Println("hello")
}

func deferFunc() {
	fmt.Println("deferFunc")
}

func returnFunc() int {
	fmt.Println("returnFunc")
	return 1
}

// 先return再defer
func returnAndDefer() int {
	defer deferFunc()
	return returnFunc()
}
